package com.dsl.dao;

import com.dsl.entity.Message;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Description 消息数据层接口
 * @Author Lenovo
 * @Date 2024/9/10 下午2:39
 * @Version 1.0
 */
@Mapper
public interface MessageMapper {

    // 查询当前用户的会话列表,针对每个会话只返回一条最新的私信.
    List<Message> getConversations(int userId, int offset, int limit);

    // 查询当前用户的会话数量.
    int getConversationCount(int userId);

    // 查询某个会话所包含的私信列表.
    List<Message> getLetters(String conversationId, int offset, int limit);

    // 查询某个会话所包含的私信数量.
    int getLetterCount(String conversationId);

    // 查询未读私信的数量
    int getLetterUnreadCount(int userId, String conversationId);

    //新增私信
    int addMessage(Message message);

    //修改私信状态
    int updateStatus(List<Integer> ids, int status);

    //查询某个主题下最新的通知
    Message getLatestNotice(int userId, String topic);

    //查询某个主题下通知数量
    int getNoticeCount(int userId, String topic);

    //查询未读的通知数量
    int getNoticeUnreadCount(int userId, String topic);

    //查询某个主题包含的通知列表
    List<Message> getNotices(int userId, String topic, int offset, int limit);
}
